昨天,我們介紹了從開發到上線會經過的幾個執行環境,今天,讓我們一起來看看 Linux 是什麼,以及介紹幾個基本的指令吧 !
Linux 是一個開源且免費的操作系統,由 Linus Torvalds 在 1991 年根據 Unix 的原理設計的。也正因為 Linux 這個作業系統是開源的,讓這世界上的每一個人都能瀏覽核心的程式碼,並起參與修正與升級,致使 Linux 擁有非常廣大的社群。
剛才提到 Linux 是操作系統,意味著他擔任應用程式與硬體之間溝通的橋樑,在使用任何的應用程式時,皆需要作業系統的協助,而這一塊作業系統最底層的東西,又被稱為 Linux Kernel (Linux 核心)。
我們若想要去使用 Linux 系統,必然會需要一些軟體的協助,如命令行 (command line)、GUI 等,由於 Linux 是開源的,許多公司與非營利組織則會將 Linux Kernel 加上額外的軟體(通常包含一些工具和可運行的軟體),做成一個完整的操做系統,也就是 Linux distribution (俗稱發行版),而目前常見的發行版有 Debian、Ubuntu、Red Hat Enterprise Linux(RHEL)、CentOS、Fedora 等。
(取自 Red Hat 官網)
既然我們知道 Linux 是操作系統,那明明大家都是含著 Window 出生的(或是那顆蘋果),為何偏偏要使用 Linux 作為伺服器的作業系統呢 ? 這裡我整理了幾個目前主流使用 Linux 的原因:
其實這三個理由也是相輔相成的,相較於 Windows Server,Linux 不用收費這一點能為公司節省很大的一筆成本,也因此更多企業用戶更偏向使用 Linux(當然 Windows Server 還是有一定的市場),而更多的用戶則能促使 Linux 的持續更新及維護,每當有 Vulnerability (具風險的漏洞) 被發現時,廣大的社群便會協助更新並修正,致使 Linux 成為一個穩定、可靠且安全的操作系統。
但俗話說防呆不防傻、大力出奇蹟,沒有什麼是傻子解決不了的問題,真正最大的漏洞其實在於人的操作上;在最近資安的顯學 "零信任架構" 就是建立在不相信內外網路的任何人事物之上。而本次鐵人賽的主要精神在於帶大家看過整個 DevOps 內會經過的步驟,則不深入探討關於資安的議題。
到此,我們知道 Linux 因為免費好用又可靠,所以我們要學習它,而第二方面,DevOps 內的 Ops 環節幾乎都和伺服器環境相關,如昨天提到的 UAT、SIT 及 Production 環境,都常以 Linux 作為操作系統。再來,容器化得技術如 Docker 會運行在 Linux 系統上,到最後以 Kubernetes 優雅的調度資源與部署 container,全都會需要 Linux 的技術知識。
因此,我個人認為想要熟悉 DevOps 的學習途徑,其順序會包含以下幾點:
關於 Linux 其實還有非常多的基礎知識需要知道,如對於 User 權限的管理,檔案的權限操作等,礙於篇幅關係則不特別介紹,僅讓讀者以最少的操作就能讓 DevOps 流程運作;因此,我在這裡整理了幾個在後續搭建 Jenkins 以及調整參數時會常用到的指令,以便後續它出現時大家比較不會感到陌生。
#顯示當前的位置,應該是 print current/working directory 的縮寫
pwd
#移動到其他的目錄下,等同於我們在 Windows 點選其他的資料夾
cd
#列舉目前資料夾下的檔案
ls
#詳細列舉目前資料夾下的檔案,包含讀寫執行的權限、建立的時間
ls -l
#更改檔案的時間戳記,如果沒有檔案,則會創立一個新的空檔案(通常是用來件檔案的)
touch
#刪除檔案或資料夾,若加上 -rf 會將資料夾內的檔案一起刪除
rm
#複製檔案
cp
#創建資料夾
mkdir
#印出檔案的內容
cat
#文字編輯器,是 Linux 必學的核心指令,讓使用者能夠打開並修改文件
vim
今天,我們介紹了 Linux 以及一些常用的指令,而現在讓我們先一同進入時間的裂痕,培養一些基礎的知識,在後面幾天介紹完 Docker 之後,我們就會進入第四期的 Sprint,並手把手帶大家在 Linux 上操作及安裝要完成 CI/CD 的工具,並將專案部署到環境上面。
明天,我們開始介紹 Docker,當大家了解原理後,我們一起將後端的 spring boot 專案打包成 Jar 運行在 Linux 環境上(屆時我們把它叫做 SIT),並且比較以 Docker image 由 Container 運行時的差異。
Q3 開始每天都被工作追著跑,回家後又要努力擠出時間整理資料與發文,終於苟延殘喘到週末了,現在看到有人陸陸續續的完賽,以及前幾年大家的成果,每個人都是運用自己下班以及閒暇的時間整理與分享知識,真是不由得佩服起來。果然明年一定要預先準備內容,不然真的會每天壓線上傳! 最後祝大家周末愉快!